/**
 * 
 */
package com.td.framework.webmanager.bmxx.service;

import java.util.List;

import com.td.framework.common.IBaseService;
import com.td.framework.webmanager.domain.AppsysBmxx;

/**
 * 
 * Title:部门信息处理业务层接口 Description:处理部门信息 Copyright: Copyright (c) 2008 Company
 * 北京水软科技有限公司
 * 
* @author FLT006
 * @version 1.0
 */
public interface BmxxService extends IBaseService {
	/**
	 * @toDo:得到总记录数;
	 * @return rows;
	 */
	public int getRows(String sjbmbh, AppsysBmxx appsysBmxx,String yhbh,String defaultBmbh,String xtbm);
	/**
	 * @toDo 通过上级部门编号查询部门信息;
	 * @param sjbmbh，appsysBmxx
	 * @param pageSize,startRow
	 * @return 部门集合;
	 */
	public List<AppsysBmxx> findBySjbmbh(String sjbmbh, AppsysBmxx appsysBmxx,String yhbh,String defaultBmbh,String xtbm,int pageSize, int startRow);
	/**
	 * @toDo 通过上级部门编号查询部门信息;
	 * @param sjbmbh
	 * @param pageSize,startRow
	 * @return 部门集合;
	 */
	@SuppressWarnings("unchecked")
	public List<AppsysBmxx> findBySjbmbh(String sjbmbh);
	/**
	 * @toDo 部门排序;
	 * @param appsysBmxxs
	 * @return
	 */
	public boolean orderBmxx(String[] bmId, String[] pxh);

	/**
	 * @toDo 得到生成组织结构树的部门集合;
	 * @return 部门集合;
	 */
	@SuppressWarnings("unchecked")
	public List getTreeList();

	/**
	 * @toDo: 通过部门编号得到部门信息;
	 * @param bmbh
	 * @return 部门信息对象;
	 */
	public AppsysBmxx getBmxx(String bmbh);
	/**
	 * @toDo: 通过部门固定编号得到部门信息;
	 * @param bmbh
	 * @return 部门信息对象;
	 */
	public AppsysBmxx getBmxxBygdbh(String bmgdbh) ;
	/**
	 * @toDo:保存部门信息
	 * @param bmxx
	 * @return boolean
	 */
	public boolean addBmxx(AppsysBmxx appsysBmxx);

	/**
	 * @toDo:更新部门信息;
	 * @param bmxx
	 * @return boolean;
	 */
	public boolean updateBmxx(AppsysBmxx bmxx);

	/**
	 * @toDo: 删除部门信息;
	 * @param bmbhs
	 * @return boolean;
	 */
	public boolean deleteBmxx(String[] bmbhs);
	
	/**
	 * toDo:通过用户/用户组编号结合部门权限查询部门信息
	 * @param yhbh用户编号
	 * @param defaultBmbh 默认部门编号
	 * @param yhlb用户类别 ,0 为用户组,1 为用户
	 * @param xtbm系统编码
	 * @param flag 0为部门分配时用, 1为生成与权限结合的部门树
	 * @return list;
	 */
	public List<AppsysBmxx> findBmxxByYhbh(String yhbh,String defaultBmbh, int yhlb, String xtbm,
			int flag);
	/**
	 * 查询用用户名称是否被占用
	 */
	public boolean checkBmmc(String bmmc);
	
	/**
	 * 查询该部门下面是否还有人员
	 * @param bmbh 部门编号
	 */
	public  boolean checkHasPeople(String bmbh);
}
